什麼是 DMARC 報告
DMARC 代表網域型郵件認證、報告和符合性。它是一項電子郵件認證通訊協定,可幫助防範電子郵件網路釣魚和詐騙。
傳送電子郵件時,DMARC 允許網域擁有者設定 DNS 記錄,指定用於驗證電子郵件真實性的認證方法,如 SPF(寄件者原則架構)和 DKIM(網域金鑰識別郵件)等。當電子郵件未通過這些認證檢查時,DMARC 會指示收件者的電子郵件提供者如何處理郵件:隔離郵件或直接拒絕郵件。
如今,在網際網路中,電子郵件網路釣魚和詐騙攻擊越來越複雜且普遍,因此 DMARC 的重要性也日漸提升。透過實作 DMARC,網域擁有者能夠保護他們的品牌和客戶不受這些攻擊的負面影響,包括失去信任、信譽損害和經濟損失。
除了針對網路釣魚和詐騙攻擊提供保護,DMARC 還提供報告功能。網域擁有者能夠接收有關電子郵件認證活動的報告,其中包括哪些訊息通過了 DMARC 檢查,哪些未通過,以及這些訊息的來源。
DMARC 管理功能涉及設定和維護網域的 DMARC 原則。若要實現有效的 DMARC 管理功能,需對電子郵件認證活動進行持續的監控和分析,以及能夠根據需要對 DMARC 原則進行調整和更新。
以下為有效 DMARC 管理功能的幾個關鍵組成部分:
這指定了我們將使用 DMARC 版本 1,我們的原則是拒絕未通過 DMARC 檢查的電子郵件,以及提供者應向其傳送 DMARC 報告的電子郵件地址。
如何構建
Cloudflare 作為雲端式網路安全和效能解決方案的領先提供者,採取了特定的方法來測試我們的產品。我們「吃自產的狗糧」,這表示我們使用自己的工具和服務來執行我們的商業方案。這有助於我們提前識別任何問題或錯誤,避免它們影響到客戶。
我們在內部使用自己的產品,例如 Cloudflare Workers,這是一個無伺服器平台,允許開發者在我們的全球網路上執行他們的程式碼。自 2017 年推出以來,Workers 生態系統發展迅速。如今,有成千上萬的開發者在該平台上建構和部署應用程式。Workers 生態系統的強大之處在於,它能夠讓開發者建構複雜的應用程式,而這些應用程式之前的執行不可能距離用戶端如此近(或不切實際)。Workers 可用於建構 API、產生動態內容、最佳化影像、執行即時處理等等。可能性幾乎是無限的。我們使用 Workers 為 Radar 2.0 等服務或 Wildebeest 等軟體套件提供支援。
最近,我們的 Email Routing 產品與 Workers 聯手,可以透過 Workers 指令碼處理傳入的電子郵件。正如文件所述:「借助 Email Workers,您可以利用 Cloudflare Workers 的強大功能來實作處理電子郵件和建立複雜規則所需的任何邏輯。這些規則決定了收到電子郵件時會執行的操作。」規則和驗證的地址都可以透過我們的 API 設定。
以下展示了簡單的 Email Worker 外觀:
很簡單,對吧?
鑒於能夠以程式設計方式處理傳入的電子郵件,它似乎是以可擴展和高效的方式處理傳入 DMARC 報告電子郵件的最佳方式,讓 Email Routing 和 Workers 完成接收全球無數電子郵件的繁重工作。以下是對我們所需操作的詳細說明:
架構
Email Workers 是我們 Email Routing 產品的一項功能。Email Routing 元件在我們所有的節點中執行,因此它們中的任何一個都能夠處理傳入郵件,這很重要,因為我們從所有數據中心公佈了電子郵件輸入 BGP 首碼。向 Email Worker 傳送電子郵件就像在 Email Routing 儀表板中設定規則一樣簡單。
當 Email Routing 元件收到一封電子郵件,該郵件與要傳遞給 Worker 的規則相匹配時,它將聯絡我們最近開源的 workerd 執行階段的內部版本,該執行階段也在所有節點上執行。管理此互動的 RPC 架構在 Capnproto 架構中定義,並允許在閱讀電子郵件正文時將其流式傳輸到 Edgeworker。如果 Worker 指令碼決定轉送此電子郵件,Edgeworker 將使用原始請求中傳送的功能聯絡 Email Routing。
在 DMARC 報告的內容中,以下是我們處理傳入電子郵件的方式:
開源
正如我們之前提到的,我們建構了一個您可以啟用和使用的託管服務,我們將為您管理它。但是,我們所做的一切也可以由您在您的帳戶中部署,以便您可以管理自己的 DMARC 報告。過程簡單,而且免費。為了幫助您執行此操作,我們發佈了一個開源版本的 Worker,它以上述方式處理 DMARC 報告:https://github.com/cloudflare/dmarc-email-worker
如果您沒有用於顯示資料的儀表板,您還可以從 Worker 查詢 Analytics Engine。或者,如果您想將它們儲存在關係資料庫中,則可以使用 D1。可能性是無限的,我們期待看到您將使用這些工具建構什麼。
請分享您自己的想法,我們洗耳恭聽。
我們希望這篇文章能加深您對 Workers 平台的理解。如今,Cloudflare 利用此平台建構了我們的大部分服務,我們認為您也應該這麼做。
歡迎使用我們的開源版本,向我們展示您可以使用它實現哪些目的。
Email Routing 也在努力擴展 Email Workers API 的功能,我們很快會在另一篇部落格文章中進行介紹。